package o;

import java.util.List;
import o.mc.a;

class mm {
    final c ˎ;

    interface c {
        a ˊ(int i, int i2, int i3, Object obj);

        void ˎ(a aVar);
    }

    mm(c cVar) {
        this.ˎ = cVar;
    }

    void ˊ(List<a> list) {
        while (true) {
            int ˋ = ˋ(list);
            if (ˋ != -1) {
                ˎ(list, ˋ, ˋ + 1);
            } else {
                return;
            }
        }
    }

    private void ˎ(List<a> list, int i, int i2) {
        a aVar = (a) list.get(i);
        a aVar2 = (a) list.get(i2);
        switch (aVar2.ˊ) {
            case 1:
                ॱ(list, i, aVar, i2, aVar2);
                return;
            case 2:
                ˊ(list, i, aVar, i2, aVar2);
                return;
            case 4:
                ˋ(list, i, aVar, i2, aVar2);
                return;
            default:
                return;
        }
    }

    void ˊ(List<a> list, int i, a aVar, int i2, a aVar2) {
        int i3;
        a aVar3;
        int i4 = 0;
        if (aVar.ॱ < aVar.ˎ) {
            i3 = (aVar2.ॱ == aVar.ॱ && aVar2.ˎ == aVar.ˎ - aVar.ॱ) ? 1 : 0;
        } else if (aVar2.ॱ == aVar.ˎ + 1 && aVar2.ˎ == aVar.ॱ - aVar.ˎ) {
            i4 = 1;
            i3 = 1;
        } else {
            i3 = 0;
            i4 = 1;
        }
        if (aVar.ˎ < aVar2.ॱ) {
            aVar2.ॱ--;
        } else if (aVar.ˎ < aVar2.ॱ + aVar2.ˎ) {
            aVar2.ˎ--;
            aVar.ˊ = 2;
            aVar.ˎ = 1;
            if (aVar2.ˎ == 0) {
                list.remove(i2);
                this.ˎ.ˎ(aVar2);
                return;
            }
            return;
        }
        if (aVar.ॱ <= aVar2.ॱ) {
            aVar2.ॱ++;
            aVar3 = null;
        } else if (aVar.ॱ < aVar2.ॱ + aVar2.ˎ) {
            aVar3 = this.ˎ.ˊ(2, aVar.ॱ + 1, (aVar2.ॱ + aVar2.ˎ) - aVar.ॱ, null);
            aVar2.ˎ = aVar.ॱ - aVar2.ॱ;
        } else {
            aVar3 = null;
        }
        if (i3 != 0) {
            list.set(i, aVar2);
            list.remove(i2);
            this.ˎ.ˎ(aVar);
            return;
        }
        if (i4 != 0) {
            if (aVar3 != null) {
                if (aVar.ॱ > aVar3.ॱ) {
                    aVar.ॱ -= aVar3.ˎ;
                }
                if (aVar.ˎ > aVar3.ॱ) {
                    aVar.ˎ -= aVar3.ˎ;
                }
            }
            if (aVar.ॱ > aVar2.ॱ) {
                aVar.ॱ -= aVar2.ˎ;
            }
            if (aVar.ˎ > aVar2.ॱ) {
                aVar.ˎ -= aVar2.ˎ;
            }
        } else {
            if (aVar3 != null) {
                if (aVar.ॱ >= aVar3.ॱ) {
                    aVar.ॱ -= aVar3.ˎ;
                }
                if (aVar.ˎ >= aVar3.ॱ) {
                    aVar.ˎ -= aVar3.ˎ;
                }
            }
            if (aVar.ॱ >= aVar2.ॱ) {
                aVar.ॱ -= aVar2.ˎ;
            }
            if (aVar.ˎ >= aVar2.ॱ) {
                aVar.ˎ -= aVar2.ˎ;
            }
        }
        list.set(i, aVar2);
        if (aVar.ॱ != aVar.ˎ) {
            list.set(i2, aVar);
        } else {
            list.remove(i2);
        }
        if (aVar3 != null) {
            list.add(i, aVar3);
        }
    }

    private void ॱ(List<a> list, int i, a aVar, int i2, a aVar2) {
        int i3 = 0;
        if (aVar.ˎ < aVar2.ॱ) {
            i3 = -1;
        }
        if (aVar.ॱ < aVar2.ॱ) {
            i3++;
        }
        if (aVar2.ॱ <= aVar.ॱ) {
            aVar.ॱ += aVar2.ˎ;
        }
        if (aVar2.ॱ <= aVar.ˎ) {
            aVar.ˎ += aVar2.ˎ;
        }
        aVar2.ॱ = i3 + aVar2.ॱ;
        list.set(i, aVar2);
        list.set(i2, aVar);
    }

    void ˋ(List<a> list, int i, a aVar, int i2, a aVar2) {
        Object obj;
        Object obj2 = null;
        if (aVar.ˎ < aVar2.ॱ) {
            aVar2.ॱ--;
            obj = null;
        } else if (aVar.ˎ < aVar2.ॱ + aVar2.ˎ) {
            aVar2.ˎ--;
            obj = this.ˎ.ˊ(4, aVar.ॱ, 1, aVar2.ˋ);
        } else {
            obj = null;
        }
        if (aVar.ॱ <= aVar2.ॱ) {
            aVar2.ॱ++;
        } else if (aVar.ॱ < aVar2.ॱ + aVar2.ˎ) {
            int i3 = (aVar2.ॱ + aVar2.ˎ) - aVar.ॱ;
            obj2 = this.ˎ.ˊ(4, aVar.ॱ + 1, i3, aVar2.ˋ);
            aVar2.ˎ -= i3;
        }
        list.set(i2, aVar);
        if (aVar2.ˎ > 0) {
            list.set(i, aVar2);
        } else {
            list.remove(i);
            this.ˎ.ˎ(aVar2);
        }
        if (obj != null) {
            list.add(i, obj);
        }
        if (obj2 != null) {
            list.add(i, obj2);
        }
    }

    private int ˋ(List<a> list) {
        Object obj = null;
        int size = list.size() - 1;
        while (size >= 0) {
            Object obj2;
            if (((a) list.get(size)).ˊ != 8) {
                obj2 = 1;
            } else if (obj != null) {
                return size;
            } else {
                obj2 = obj;
            }
            size--;
            obj = obj2;
        }
        return -1;
    }
}
